package com.pureut.order.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.sale.common.core.web.domain.BaseEntity;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;

/**
 *采购订单
 */
@Data
public class PurchaseOrderVo {

    /**
     * id
     */
    private long id;

    /**
     * 采购计划id
     */
    private long planId;

    /**
     * 采购计划明细id
     */
    private long detailId;

    /**
     * 采购订单号
     */
    private String purchaseOrderNo;

    /**
     * 采购计划单号
     */
    private String purchasePlanNo;

    /**
     * 单据状态
     */
    private String status;

    /**
     * 采购合同号
     */
    @NotBlank(message = "采购合同号不能为空")
    private String purchaseContractNo;

    /**
     * 供应商
     */
    @NotNull(message = "供应商不能为空")
    private String supplierCode;

    /**
     * 预计到货时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date estimatedTime;

    /**
     * 实际到货重量
     */
    private String actualArrivalWeight;

    /**
     * 退货重量
     */
    private String backWeight;

    /**
     * 计划单价
     */
    private String plannedUnitPrice;

    /**
     * 实际单价
     */
    private String actualUnitPrice;

    /**
     * 审核人
     */
    private String reviewBy;

    /**
     * 审核时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date reviewTime;

//    /**
//     * 首批到货时间
//     */
//    @NotNull(message = "首批到货时间不能为空")
//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
//    private Date firstBatchTime;
//
//    /**
//     * 末批到货时间
//     */
//    @NotNull(message = "末批到货时间不能为空")
//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
//    private Date endBatchTime;

    /**
     * 附件
     */
    @NotBlank(message = "附件不能为空")
    private String enclosureUrl;

    /**
     * 创建时间(前)
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private String endTime;

    /**
     * 创建时间（后）
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private String startTime;

    /**
     * 采购计划单号
     */
    private String purchaseNum;

    /**
     * 物料编码
     */
    private String materialCode;

    /**
     * 物料名称
     */
    private String materialName;


    /**
     * 供应商名称
     */
    private String supplierName;

    /**
     * 供应商编号
     */
    private String supplierNum;

    /**
     * 实际重量
     */
    private String actualWeight;

    /**
     * 关节原因
     */
    private String closeReason;

    /**
     * 备注
     */
    private String remark;

    /**
     * 开单日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date billingDate;

    /**
     * 需求时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date demandTime;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date createTime;

    /**
     * 物料列表
     */
    private List<PurchaseVo> materialList;

    /**
     * 单位
     */
    private String materialUnit;

    /**
     * 物料类别
     */
    private Integer materialCategory;

}
